package com.huatai.common.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.huatai.common.constant.ChineseName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 操作日志记录表 oper_log
 *
 * @author zsj
 */
@TableName("sys_oper_log")
@ApiModel(value = "SysOperLog实体", description = "SysOperLog实体")
@Data
public class SysOperLog {

	/**
	 * 日志主键
	 */
	@ApiModelProperty("主键id")
	@ChineseName(value = "序号")
	private Long id;

	/**
	 * 操作模块
	 */
	@ApiModelProperty("模块标题")
	@ChineseName(value = "模块标题")
	private String title;

	/**
	 * 业务类型（0其它 1新增 2修改 3删除）
	 */
	@ApiModelProperty("业务类型（0其它 1新增 2修改 3删除）")
	private Integer businessType;

//    /** 业务类型数组 */
//    private Integer[] businessTypes;

	/**
	 * 请求方法
	 */
	@ApiModelProperty("方法名称")
	@ChineseName(value = "方法名称")
	private String method;

	/**
	 * 请求方式
	 */
	@ApiModelProperty("请求方式")
	@ChineseName(value = "请求方式")
	private String requestMethod;

	/**
	 * 操作类别（0其它 1后台用户 2手机端用户）
	 */
	@ApiModelProperty("操作类别（0其它 1后台用户 2手机端用户）")
	private Integer operatorType;

	/**
	 * 操作人员
	 */
	@ApiModelProperty("操作人员")
	@ChineseName(value = "操作人员")
	private String operName;

	/**
	 * 部门名称
	 */
	@ApiModelProperty("部门名称")
	private String deptName;

	/**
	 * 请求url
	 */
	@ApiModelProperty("请求URL")
	@ChineseName(value = "请求URL")
	private String operUrl;

	/**
	 * 操作地址
	 */
	@ApiModelProperty("主机地址")
	@ChineseName(value = "主机地址")
	private String operIp;

	/**
	 * 请求参数
	 */
	@ApiModelProperty("请求参数")
	@ChineseName(value = "请求参数")
	private String operParam;

	/**
	 * 返回参数
	 */
	@ApiModelProperty("返回参数")
	@ChineseName(value = "返回参数")
	private String jsonResult;

	/**
	 * 操作状态（0正常 1异常）
	 */
	@ApiModelProperty("操作状态（0正常 1异常）")
	private Integer status;

	/**
	 * 错误消息
	 */
	@ApiModelProperty("错误消息")
	@ChineseName(value = "错误消息")
	private String errorMsg;

	/**
	 * 操作时间
	 */
	@ApiModelProperty("操作时间")
	@TableField(value = "oper_time",fill = FieldFill.INSERT)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ChineseName(value = "操作时间")
	private LocalDateTime operTime = LocalDateTime.now();

	/**
	 * 消耗时间
	 */
	@ApiModelProperty("消耗时间")
	@ChineseName(value = "消耗时间")
	private Long costTime;
}
